#include <iostream>
#include <string>

using namespace std;

class new_class
{
    private:

    public:
        new_class();
        ~new_class();

    public:
        int * num;
};

// 构造函数
new_class::new_class()
{
    cout << "调用了构造函数" << endl;
    num = new int(50);
}

// 析构函数
new_class::~new_class()
{
    delete num;
    cout << "调用了析构函数 并释放了num" << endl;
}

/*
在动态空间创建的时候
malloc 和 free 不调用 类的 构造 和 析构函数
new 和 delete 的时候 会调用 类的 构造和析构函数
*/

int main(int argc, char const *argv[])
{
    // 使用malloc 创建空间
    //new_class * class_1 = (new_class *)malloc(sizeof(new_class));

    //free(class_1);

    // 使用new 创建空间
    new_class * class_2 = new new_class;

    delete class_2;
    
    return 0;
}
